/*
 *                 Sun Public License Notice
 * 
 * The contents of this file are subject to the Sun Public License
 * Version 1.0 (the "License"). You may not use this file except in
 * compliance with the License. A copy of the License is available at
 * http://www.sun.com/
 * 
 * The Original Code is NetBeans. The Initial Developer of the Original
 * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
 * Microsystems, Inc. All Rights Reserved.
 */


package org.medbeans.modules.pdf;


import java.awt.Image;
import java.beans.BeanInfo;
import java.beans.BeanDescriptor;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.beans.SimpleBeanInfo;

import org.openide.TopManager;
import org.openide.util.NbBundle;
import org.openide.util.Utilities;


/** BeanInfo for PDF viewer settings.
 *
 * @author Jesse Glick
 */
public class PDFSettingsBeanInfo extends SimpleBeanInfo {

    /** Gets property descriptors. */
    public PropertyDescriptor[] getPropertyDescriptors () {
        try {
            PropertyDescriptor pdfviewer = new PropertyDescriptor ("PDFViewer", PDFSettings.class);
            pdfviewer.setDisplayName (NbBundle.getMessage (PDFSettingsBeanInfo.class, "PROP_pdfviewer"));
            pdfviewer.setShortDescription (NbBundle.getMessage (PDFSettingsBeanInfo.class, "HINT_pdfviewer"));
            return new PropertyDescriptor[] { pdfviewer };
        } catch (IntrospectionException ie) {
            TopManager.getDefault().getErrorManager().notify(ie);
            
            return null;
        }
    }
    
    /** Gets the bean descriptor, hiding it.
     * Users probably do not want to change this setting
     * except once, which is why they are prompted to set it
     * if their current setting does not work. 
     *
     * <em>Note:</em> The above is changed now due to bug #12015, 
     * maybe that's not the right way since there 
     * is a need to have less options than now.
     *
     * @return descriptor
     */    
    public BeanDescriptor getBeanDescriptor () {
        BeanDescriptor desc = new BeanDescriptor (PDFSettings.class);

        return desc;
    }

    /** Gets icon. */
    public Image getIcon (int type) {
        if (type == BeanInfo.ICON_COLOR_16x16 || type == BeanInfo.ICON_MONO_16x16) {
            return Utilities.loadImage("org/netbeans/modules/pdf/PDFDataIcon.gif"); // NOI18N
        } else {
            return Utilities.loadImage("org/netbeans/modules/pdf/PDFDataIcon32.gif"); // NOI18N
        }
    }

}
